home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-20 | 56.7 KB | 1,454 lines |
- Network Working Group A. Yasuda
- Request for Comments: 1043 T. Thompson
- Defense Intelligence Agency
- Updates: RFC 732 February 1988
-
-
- TELNET Data Entry Terminal Option
- DODIIS Implementation
-
- Status of this Memo
-
- This RFC suggests a proposed protocol on the TELNET Data Entry
- Terminal (DET) Option - DODIIS Implementation for the Internet
- community. It is intended that this specification be compatible with
- the specification of DET Option in RFC-732. Discussion and
- suggestions for improvements are encouraged. Distribution of this
- memo is unlimited.
-
- Introduction
-
- In the early 1980s, the Defense Intelligence Agency (DIA) undertook
- the tasks of developing a TELNET capability to access full screen
- applications across a packet switching network. This effort was
- successful by implementing Data Entry Terminal (DET) options within
- the TELNET protocol based on RFC 732. These DET options have been
- implemented on IAS, MVS, OS86 and UNIX operating systems. DET
- options are being developed for VM and VMS operating systems.
-
- The Department of Defense Intelligence Information System (DODIIS) is
- a confederation of heterogeneous computer systems and remote
- terminals utilizing the Defense Data Network (DDN) as the
- communications backbone (namely the SCINET/DSNET-3).
-
- Although the reason for implementing a DET option specification was
- based upon data base application interfaces, the use of a full screen
- TELNET provides a method to achieve higher efficiency on the network.
- Most terminal to host applications on the ARPANET are character echo
- TELNETs. This is both costly in time and network utilization, since
- one character pressed on the keyboard generates a datagram composed
- of TCP/IP headers plus the character sent to the host and the host
- echoes back a similar datagram. In the DODIIS community, programmers
- are highly encouraged to implement full screen applications; line at
- a time is acceptable; and character remote echo mode is discouraged.
-
- This RFC in its final form will be implemented on SCINET. During the
- interim period, the "DODIIS TELNET Network Virtual Data Entry
- Terminal (NVDET) Option Specification", DIA, April 1983, will be
- implemented.
-
-
-
- Yasuda & Thompson [Page 1]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- TABLE OF CONTENTS
- Page No.
- --------
-
- SECTION 1 COMMAND NAME AND OPTION CODE 4
-
- SECTION 2 COMMAND MEANINGS 4
- Facilities Subcommands 4
- Edit Subcommands 8
- Transmit Subcommands 8
- Erase Subcommands 10
- Format Subcommands 10
- Miscellaneous Subcommands 13
-
- SECTION 3 DEFAULT AND MINIMAL IMPLEMENTATION 15
-
- SECTION 4 MOTIVATION FOR THE OPTION 17
-
- SECTION 5 DESCRIPTION AND IMPLEMENTATION RULES 17
- The DODIIS DET Model 17
- Negotiating the DET Option 18
- DET Facilities Negotiation 18
- General DET Interaction 19
- Form Construction 20
- Form response 21
- Function Keys 22
- Field Selection 22
- Out-Of-Context Data 23
- Line Discipline 23
- Standard TELNET Control Functions 24
- Other Implementation Notes 24
-
- APPENDIX 1 DET OPCODES AND SUBCOMMAND SYNTAX 25
-
- APPENDIX 2 DET ERROR CODES 26
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Yasuda & Thompson [Page 2]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- The convention in the documentation of the TELNET NVDET Protocol is
- to express numbers in decimal. Data fields are described left to
- right, with the most significant octet on the left and the least
- significant octet on the right.
-
- The order of transmission of the data described in this document is
- resolved to the octet level. Whenever a diagram shows a group of
- octets, the order of transmission of those octets is the normal order
- in which they are read in English. For example, in the following
- diagram the octets are transmitted in the order they are numbered.
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 1 | 2 | 3 | 4 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | 6 | 7 | 8 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 9 | 10 | 11 | 12 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- Transmission Order of Bytes
-
- Whenever an octet represents a numeric quantity, the left most bit in
- the diagram is the high order or most significant bit. That is, the
- bit labeled 0 is the most significant bit. For example, the
- following diagram represents the value 170 (decimal).
-
- 0 1 2 3 4 5 6 7
- +-+-+-+-+-+-+-+-+
- |1 0 1 0 1 0 1 0|
- +-+-+-+-+-+-+-+-+
-
- Significance of Bits
-
- Similarly, whenever a multi-octet field represents a numeric
- quantity, the left most bit of the whole field is the most
- significant bit. When a multi-octet quantity is transmitted the most
- significant octet is transmitted first.
-
-
-
-
-
-
-
-
-
-
-
-
- Yasuda & Thompson [Page 3]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- 1. Command Name and Option Code
-
- DET 20
-
- 2. Command Meanings
-
- IAC WILL DET
-
- The sender of this command REQUESTS permission to begin, or
- AGREES that it will begin, sending and receiving Data Entry
- Terminal (DET) subcommands to control session interactions.
-
- IAC WONT DET
-
- If the connection is already operating in DET mode, the sender
- of this command DEMANDS that the connection stop operating in
- DET mode and begin operating in TELNET NVT mode. If the
- connection is not operating in DET mode, the sender REFUSES to
- begin operating in DET mode. A connection is operating in
- TELNET NVT mode when both parties are interpreting data as
- described by the TELNET SPECIFICATION, MIL-STD-1782.
-
- IAC DO DET
-
- The sender of this command REQUESTS permission to begin, or
- AGREES that it will begin, sending and receiving Data Entry
- Terminal (DET) subcommands to control session interactions.
-
- IAC DONT DET
-
- If the connection is already operating in DET mode, the sender
- of this command DEMANDS that the connection stop operating in
- DET mode and begin operating in TELNET NVT mode. If the
- connection is not operating in DET mode, the sender REFUSES to
- begin operating in DET mode. A connection is operating in
- TELNET NVT mode when both parties are interpreting data as
- described by the TELNET SPECIFICATION, MIL-STD-1782.
-
- DODIIS implementations of the DET option use the subcommands
- described in the remainder of Section 2. A description of the
- DODIIS DET model and DET subcommand usage is contained in Section
- 5.
-
- FACILITIES SUBCOMMANDS. Facilities subcommands are used to negotiate
- DET facilities (subcommands and attributes). The facility
- subcommands indicate the DET facilities the sender supports.
- Facility negotiation may be viewed as the terminal indicating the
- facilities it provides and the application indicating the facilities
-
-
-
- Yasuda & Thompson [Page 4]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- it desires. The bits of the facility maps are numbered from the
- right starting at zero. Thus, if bit 2 is set, the field will have a
- decimal value of 4.
-
- IAC SB DET EDIT-FACILITIES <facility map> IAC SE
-
- subcommand code: 1
-
- This subcommand indicates the edit facilities the sender
- supports. The <facility map> parameter is one eight bit byte
- containing the following flags:
-
- Bits 5-7 Reserved
- Bit 4 Read Cursor
- Bits 0-3 Reserved
-
- where:
-
- If the Read-Cursor bit is set, the sender supports the
- READ-CURSOR and CURSOR-POSITION subcommands.
-
- Reserved bits represent edit facilities that are not
- defined for DODIIS implementations; therefore, no
- descriptions are provided. Reserved bits must be zeroed
- to indicate non support of the associated edit facilities.
-
- IAC SB DET ERASE-FACILITIES <facility map> IAC SE
-
- subcommand code: 2
-
- This subcommand indicates the erase facilities the sender
- supports. The <facility map> parameter is one eight bit
- byte containing flags. Since no erase facilities are
- defined for DODIIS implementations, no descriptions are
- provided. The ERASE-FACILITIES subcommand is part of the
- minimal DET implementation and is included for that reason.
- DODISI implementors must declare non support of erase
- facilities by sending this subcommand with a zeroed facility
- map.
-
- IAC SB DET TRANSMIT-FACILITIES <facility map> IAC SE
-
- subcommand code: 3
-
- This subcommand indicates the transmit facilities the sender
- supports. The <facility map> parameter is one eight bit byte
- containing the following flags:
-
-
-
-
- Yasuda & Thompson [Page 5]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- Bits 6-7 Reserved
- Bit 5 Data Transmit
- Bits 0-4 Reserved
-
- where:
-
- If the Data-Transmit bit is set, the sender supports the
- DATA-TRANSMIT subcommand.
-
- Reserved bits represent transmit facilities that are not
- defined for DODIIS implementations; therefore, no
- descriptions are provided. Reserved bits must be zeroed
- to indicate non support of the associated transmit
- facilities.
-
- IAC SB DET FORMAT-FACILITIES <facility map> IAC SE
-
- subcommand code: 4
-
- This subcommand indicates the format facilities the sender
- supports. The <facility map> parameter is two eight bit bytes
- containing the following:
-
- Byte 0
- Bit 7 Function Key
- Bit 6 Modified
- Bit 5 Field Selection
- Bit 4 Repeat
- Bit 3 Blinking
- Bit 2 Reverse Video
- Bit 1 Right Justification
- Bit 0 Reserved
-
- Byte 1
- Bit 7 Reserved for color
- Bit 6 Reserved
- Bit 5 Protection
- Bit 4 Alphabetic-Only
- Bit 3 Numeric-Only
- Bits 0-2 Intensity
-
- where:
-
- If the Function-Key bit is set, the sender supports the
- FUNCTION-KEY and ENABLE-FUNCTION-KEY subcommands.
-
- If the Modified bit is set, the sender supports the
- FORMAT-DATA subcommand's Modified attribute and the
-
-
-
- Yasuda & Thompson [Page 6]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- TRANSMIT-MODIFIED subcommand.
-
- If the Field-Selection bit is set, the sender supports
- the FORMAT-DATA subcommand's Selectable attribute and
- the SELECTED-FIELD subcommand.
-
- If the Repeat bit is set the sender supports the REPEAT
- subcommand.
-
- If the Blinking bit is set, the sender requests or
- provides the ability to emphasize a string of characters
- by causing them to blink when displayed. (See the
- FORMAT-DATA subcommand.)
-
- If the Reverse-Video bit is set, the sender requests or
- provides the ability to emphasize a string of characters
- by "reversing their video image". If characters are
- normally displayed as dark characters on a light
- background, they are reversed and displayed as light
- characters on a dark background, or
- vice versa. (See the FORMAT-DATA subcommand.)
-
- If the Right-Justification bit is set, the sender
- requests or provides the ability to cause data entered
- in a field to be right justified within the field. (See
- the FORMAT-DATA subcommand.)
-
- If the Protection bit is set, the sender requests or
- provides the ability to protect certain fields displayed
- on the DET screen from being altered by the user and
- supports the ERASE-UNPROTECTED, FIELD-SEPARATOR, and
- TRANSMIT-UNPROTECTED subcommands. (See the FORMAT-DATA
- subcommand.)
-
- If the Alphabetic-Only bit is set, the sender requests
- or provides the ability to constrain the user of the DET
- such that only alphabetic data may be entered into
- certain fields. (See the FORMAT-DATA subcommand.)
-
- If the Numeric-Only bit is set, the sender requests or
- provides the ability to constrain the user of the DET
- such that only numeric data may be entered into certain
- fields. (See the FORMAT-DATA subcommand.)
-
- The Intensity parameter is three bits wide and is
- interpreted as a positive binary integer indicating the
- number of visible levels of intensity that the sender
- requests or provides for displaying data. (See the
-
-
-
- Yasuda & Thompson [Page 7]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- FORMAT-DATA subcommand.)
-
- Reserved bits represent format facilities that are not
- defined for DODIIS implementations; therefore, no
- descriptions are provided. Reserved bits must be
- zeroed to indicate non support of the associated format
- facilities.
-
- EDIT SUBCOMMANDS. Edit subcommands are sent by the application to
- position the cursor on the DET screen.
-
- IAC SB DET MOVE-CURSOR <x><y> IAC SE
-
- subcommand code: 5
-
- This subcommand positions the DET cursor at screen location
- (x,y). the <x> and <y> parameters are positive eight bit
- binary integers representing the character and line positions,
- respectively, of a DET screen location. Values of x range
- from zero (0) through M-1, where M is the DET screen width in
- characters. Values of y range from zero (0) through N-1,
- where N is the DET screen length in lines.
-
- IAC SB DET HOME-CURSOR IAC SE
-
- subcommand code: 12
-
- This subcommand positions the cursor at DET screen address
- (0,0). It is equivalent to the MOVE-CURSOR subcommand, where
- x=0 and y=0.
-
- TRANSMIT SUBCOMMANDS. Transmit subcommands are sent by the
- application to request data from the DET or by the terminal to
- identify data returned from the DET.
-
- IAC SB DET READ-CURSOR IAC SE
-
- subcommand code: 17
-
- This subcommand requests return of the DET cursor position.
- Use of this subcommand requires facility negotiation; see the
- EDITFACILITIES subcommand, Read-Cursor bit.
-
- IAC SB DET CURSOR-POSITION <x><y> IAC SE
-
- subcommand code: 18
-
- This subcommand returns cursor position in response to a
-
-
-
- Yasuda & Thompson [Page 8]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- READCURSOR subcommand. The <x> and <y> parameters are
- eight bit binary integers representing the cursor's position.
- The <x> and <y> parameters are positive eight bit binary
- integers representing the character and line positions,
- respectively, of a DET screen location. Values of x range
- from zero (0) through M-1, where M is the DET screen width in
- characters. Values of y range from zero (0) through N-1,
- where N is the DET screen length in lines. Use of this
- subcommand requires facility negotiation; see the
- EDIT-FACILITIES subcommand, Read-Cursor bit.
-
- IAC SB DET TRANSMIT-SCREEN IAC SE
-
- subcommand code: 20
-
- This subcommand requests return of all characters on the DET
- screen beginning at cursor position (0,0). M x N characters,
- where M is the DET screen width in characters and where N is
- the DET screen length in lines, are returned with a SPACE
- character returned for each character in the unwritten areas
- (the areas between defined fields). FIELD-SEPARATOR and
- DATA-TRANSMIT subcommands are not required to delimit or
- identify fields.
-
- IAC SB DET TRANSMIT-UNPROTECTED IAC SE
-
- subcommand code: 21
-
- This subcommand requests return of all characters in
- unprotected fields. Use of this subcommand requires facility
- negotiation; see the FORMAT-FACILITIES subcommand, Protection
- bit.
-
- IAC SB DET TRANSMIT-MODIFIED IAC SE
-
- subcommand code: 27
-
- This subcommand requests return of all characters in modified
- fields. Modified fields are fields that have the Modified
- attribute set (see FORMAT-DATA subcommand) as well as fields
- actually modified by the user. Use of this subcommand
- requires facility negotiation; see the FORMAT-FACILITIES
- subcommand, Modified bit.
-
- IAC SB DET DATA-TRANSMIT <x><y> IAC SE
-
- subcommand code: 28
-
-
-
-
- Yasuda & Thompson [Page 9]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- This subcommand identifies a field returned in response to
- a TRANSMIT-MODIFIED subcommand. The <x> and <y> parameters
- are positive eight bit binary integers indicating the cursor
- position of the field that follows the DATA-TRANSMIT
- subcommand. This subcommand may precede the first field of
- a transmission with subsequent fields separated by the
- FIELD-SEPARATOR subcommand or it may precede each field.
- Use of this subcommand requires facility negotiation; see
- the TRANSMIT-FACILITIES subcommand, Data-Transmit bit.
-
- ERASE SUBCOMMANDS. Erase subcommands are used by the application to
- erase the DET screen or selected DET screen areas. In performing
- erase operations, the erased characters are replaced with SPACE
- characters.
-
- IAC SB DET ERASE-SCREEN IAC SE
-
- subcommand code: 29
-
- This subcommand erases all characters from the DET screen.
- All fields regardless of their attributes are deleted. The
- cursor position after the operation is at (0,0). If the
- protection attribute has been negotiated, the erased screen
- contains protected SPACE characters.
-
- IAC SB DET ERASE-UNPROTECTED IAC SE
-
- subcommand code: 35
-
- This subcommand erases all characters in the unprotected fields
- of the DET screen. This subcommand replaces field contents
- with SPACE characters; field attributes and sizes are not
- changed. The cursor position after the operation is at the
- beginning of the first unprotected field or, if there is no
- unprotected field, at (0,0). Use of this subcommand requires
- facility negotiation; see the FORMAT-FACILITIES subcommand,
- Protection bit.
-
- FORMAT SUBCOMMANDS. The format subcommands are used by the
- application to define the fields of a form and by the terminal to
- delimit fields sent from the DET.
-
- IAC SB DET FORMAT-DATA <format map><count> IAC SE
-
- subcommand code: 36
-
- This subcommand defines the attributes and size of a DET field.
- The <format map> parameter defines the field attributes and the
-
-
-
- Yasuda & Thompson [Page 10]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- <count> parameter defines the field size. The field starts at
- the position of the cursor when the subcommand is acted upon.
- The next <count> data characters in the data stream fill the
- field.
-
- The <format map> parameter is two eight bit bytes and contains
- the following:
-
- Byte 0
- Bit 7 Blinking
- Bit 6 Reverse Video
- Bit 5 Right Justification
- Bits 3-4 Protection
- Bits 0-2 Intensity
-
- Byte 1
- Bits 5-7 Reserved
- Bits 2-4 Reserved for color
- Bit 1 Modified
- Bit 0 Selectable
-
- where:
-
- If the Blinking bit is set, the following field of
- <count> characters should have the Blinking attribute
- applied to it by the receiver.
-
- If the Reverse Video bit is set, the following field of
- <count> characters should be displayed by the receiver
- with video reversed.
-
- If the Right Justification bit is set, characters
- entered into the field by the user should be right
- justified.
-
- The Protection attribute is two bits wide and may take
- on the following values:
-
- 0 No protection. Any valid DET data character may
- be entered in the field.
-
- 1 Protected. No data may be entered in the field.
-
- 2 Alphabetic-only. Only the alphabetic characters
- (A-Z and a-z) or the space character may be
- entered in the field.
-
- 3 Numeric-only. Only the numeric characters (0-9),
-
-
-
- Yasuda & Thompson [Page 11]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- the plus sign (+), the minus sign (-), the decimal
- point (.) or the space character may be entered in
- the field.
-
- The Intensity attribute is three bits wide and indicates
- the brightness to be used when displaying the characters
- in or entered into the field <count> characters wide.
- The available number of visible intensity levels should
- have been negotiated using the FORMAT-FACILITY
- subcommand. A value of zero (0) indicates that
- brightness should be OFF; that is, characters in or
- entered into the field should not be displayed. The
- values 1-7 indicate relative brightness; the exact
- algorithm for mapping these values to the available
- levels of intensity is left to the implementors.
-
- If the Modified bit is set, the field is considered to
- have been modified and will be returned, along with any
- user modified fields.
-
- If the Selectable bit is set, the field is a candidate
- for field selection using the DET field selection
- device.
-
- The <count> parameter is two bytes and should be interpreted as a
- positive 16-bit binary integer that defines the field size. The
- high order bit is transmitted first. Data, not in the scope of
- the count of a FORMAT-DATA subcommand, should be displayed with
- the default field attributes (no blinking, no reverse video, no
- justification, no protection, not modified, not selectable, and a
- visible intensity). Minimum field size is one (1) character.
- Maximum field size is determined by a field's starting location
- and the end of the screen or the start of the next field.
-
- Use of field attributes requires facility negotiation; see the
- FORMAT-FACILITIES subcommand.
-
- IAC SB DET REPEAT <count><char> IAC SE
-
- subcommand code: 37
-
- This subcommand permits compression of DET data by encoding
- strings of identical characters as the character and a repeat
- count. The <count> parameter is a positive 8-bit binary
- integer. The <char> parameter is a valid DET data character.
- Use of this subcommand requires facility negotiation; see
- the FORMAT-FACILITIES subcommand, Repeat bit.
-
-
-
-
- Yasuda & Thompson [Page 12]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- IAC SB DET FIELD-SEPARATOR IAC SE
-
- subcommand code: 39
-
- This subcommand separates fields returned by the DET in
- response to TRANSMIT-MODIFIED or TRANSMIT-UNPROTECTED
- subcommands. Use of this subcommand requires facility
- negotiation; see the FORMAT-FACILITIES subcommand,
- Protection bit.
-
- MISCELLANEOUS SUBCOMMANDS
-
- IAC SB DET FUNCTION-KEY <code> IAC SE
-
- subcommand code: 40
-
- This subcommand transmits a user entered function key code.
- The <code> parameter is one byte that identifies the virtual
- function key entered. Function key <code> values range from
- 0 to 255. This subcommand is used in conjunction with the
- ENABLE-FUNCTION-KEY subcommand. Use of this subcommand
- requires facility negotiation; see the FORMAT-FACILITIES
- subcommand, Function-Key bit.
-
- IAC SB DET ERROR <cmd><error code> IAC SE
-
- subcommand code: 41
-
- This subcommand allows a DET option implementation to report
- errors it detects to the corresponding TELNET process. The
- <cmd> parameter is one byte containing the subcommand code
- of the subcommand causing the error. The <error code>
- parameter is one byte containing a DET error code. (See
- Appendix 2 for DET error codes.)
-
- Errors should be reported when detected. However, the
- implementation should attempt to carry out the intent of
- the subcommand or data in error.
-
- IAC SB DET START-OUT-OF-CONTEXT-DATA IAC SE
-
- subcommand code: 42
-
- This subcommand precedes out-of-context data. The data
- following this subcommand and prior to the
- END-OUT-OF-CONTEXT-DATA subcommand is NOT part of the current
- form. The out-out-of-context data should be interpreted as
- NVT mode data (i.e., it may contain carriage return and line
-
-
-
- Yasuda & Thompson [Page 13]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- feed characters) and should be displayed in a timely and
- non-destructive fashion.
-
- IAC SB DET END-OUT-OF-CONTEXT-DATA IAC SE
-
- subcommand code: 43
-
- This subcommand indicates the end of the out-of-context data.
-
- IAC SB DET ENABLE-FUNCTION-KEYS <key-map>IAC SE
-
- subcommand code: 44
-
- This subcommand enables (or disables) virtual function keys and
- indicates the application's data requirements on function key
- selection. The <key-map> parameter is a variable length byte
- string. Each byte contains four bit-pairs and each bit-pair
- represents a single function key. The first byte represents
- function keys zero (0) through three (3); the second byte,
- function keys four (4) through seven (7); and so on. Bit-pair
- values and there meanings are as follows:
-
- 0 The virtual function key is disabled (i.e., locked).
-
- 1 The virtual function key is enabled. Only the FUNCTION-
- KEY subcommand is returned on function key selection.
-
- 2 The virtual function key is enabled. All requested
- screen data and/or cursor position, as well as, the
- FUNCTION-KEY subcommand are returned on function key
- selection.
-
- 3 Undefined.
-
- Function keys not explicitly represented in the bitmap are
- disabled (i.e., they are assumed to have a bit-pair value of
- zero (0)).
-
- Use of this subcommand requires facility negotiation; see the
- FORMAT-FACILITIES subcommand; Function-Key bit.
-
- IAC SB DET SELECTED-FIELD <x><y> IAC SE
-
- subcommand code: 45
-
- This subcommand identifies a user selected field. The <x> and
- <y> parameters are the cursor position of the character
- selected from within a selectable field (see the FORMAT-DATA
-
-
-
- Yasuda & Thompson [Page 14]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- subcommand, Selectable attribute.) Use of this subcommand
- requires negotiation; see the FORMAT-FACILITIES subcommand,
- Field-Selection bit.
-
- 3. Default and Minimal Implementation
-
-
- Default.
-
- WONT DET -- DONT DET
-
- If the DET option cannot be negotiated, the connection is
- not operated in DET mode.
-
- Minimal DET Implementation.
-
- The minimal DET implementation consists of all DET subcommands
- that may be used without prior negotiation. These subcommands
- are as follows:
-
- EDIT-FACILITIES
- ERASE-FACILITIES
- TRANSMIT-FACILITIES
- FORMAT-FACILITIES
- MOVE-CURSOR
- HOME-CURSOR
- ERASE-SCREEN
- TRANSMIT-SCREEN
- FORMAT-DATA
- ERROR
- START-OUT-OF-CONTEXT-DATA
- END-OUT-OF-CONTEXT-DATA
-
- DODIIS DET implementation requirements.
-
- The minimal DET implementation set of subcommands is not broad
- enough to support forms interactions between DODIIS terminals
- and DODIIS applications. Therefore, DODIIS implementations of
- the DET option must support additional DET subcommands.
-
- DODIIS terminal (User Host) implementations must implement and
- support all of the DET subcommands contained in Section 2, as
- well as those DET attributes supported by the terminal hardware
- and any DET attributes easily emulated in software. DODIIS
- application (Server Host) implementations must implement and
- support those DET subcommands and attributes required by its
- applications.
-
-
-
-
- Yasuda & Thompson [Page 15]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- DODIIS implementation recommendations are contained in the
- table that follows. DODIIS implementors are cautioned that
- failure to provide recommended support may limit
- interoperability.
-
- Recommended DET support levels for DODIIS implementations
-
- USER HOST SERVER HOST
- DET SUBCOMMANDS SUPPORT LEVEL SUPPORT LEVEL
- --------------- ------------- -------------
- EDIT-FACILITIES send & receive send & receive
- ERASE-FACILITIES send & receive send & receive
- TRANSMIT-FACILITIES send & receive send & receive
- FORMAT-FACILITIES send & receive send & receive
- REPEAT send & receive send & receive
- ERROR send & receive send & receive
- MOVE-CURSOR receive only send only
- HOME-CURSOR receive only send only
- READ-CURSOR receive only send only
- TRANSMIT-SCREEN receive only send only
- TRANSMIT-UNPROTECTED receive only send only
- TRANSMIT-MODIFIED receive only send only
- ERASE-SCREEN receive only send only
- ERASE-UNPROTECTED receive only send only
- FORMAT-DATA receive only send only
- START-OUT-OF-CONTEXT-DATA receive only send only
- END-OUT-OF-CONTEXT-DATA receive only send only
- ENABLE-FUNCTION-KEYS receive only send only
- CURSOR-POSITION send only receive only
- DATA-TRANSMIT send only receive only
- FIELD-SEPARATOR send only receive only
- FUNCTION-KEY send only receive only
- SELECTED-FIELD send only receive only
-
- DET ATTRIBUTES
- --------------
- Blinking (1) (2)
- Reverse video (1) (2)
- Right justification (1) (2)
- Protection required (2)
- Alphabetic-only protection (1) (2)
- Numeric-only protection (1) (2)
- Intensity level > 1 (1) (2)
-
- OTHER
- -----
- Page size (lines) 24-48
- Line size (characters) 80
-
-
-
- Yasuda & Thompson [Page 16]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- Function keys (number) 64
-
-
- (1) Implement if supported by terminal hardware.
- (2) Implement if required by the application.
-
- 4. Motivation for the option
-
- In 1981, the TELNET DET option (RFC 732) was selected as the protocol
- to support interactions between DODIIS forms applications and DODIIS
- forms terminals. The intent was to foster a high degree of
- interoperability between DODIIS hosts with forms applications and
- terminals. Since that time, the DET option has been and is being
- implemented by several independent organizations within the DODIIS
- community.
-
- Motivated by concern that the independently developed implementations
- of the DET option may not interoperate with one another, DODIIS
- implementors met to identify DODIIS implementation requirements and
- to resolve implementation issues that affect interoperability.
-
- This document attempts to present the agreements and recommendations
- of the DODIIS implementors.
-
- 5. Description and Implementation Rules
-
- The DODIIS DET model.
-
- The conceptual model of the DODIIS DET is that of a half-duplex,
- forms oriented device with the following:
-
- a. A rectangular screen for displaying protected and unprotected
- data (a form) and optional capability to support blinking,
- reverse video, and up to seven display intensity levels.
-
- b. A keyboard and onboard mechanisms for editing unprotected
- fields of a form and returning the modified fields.
-
- c. Function keys that may be enabled and disabled on a key-by-key
- basis by the application.
-
- d. A field selection device, similar to a light pen, that permits
- user selection of characters within appropriately identified
- "selectable" fields.
-
- The DODIIS DET screen has default sizes of 80 characters and 24
- lines. These defaults may be changed through negotiation using the
- Output Line Width and the Output Page Size options. When the parties
-
-
-
- Yasuda & Thompson [Page 17]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- cannot agree on screen size through negotiation, the default values
- will be used. By agreement, DODIIS terminal (User Host)
- implementations of DET will support page sizes of 24 to 48 lines.
-
- The next writing position (x,y) on the DET screen is indicated by a
- special display character called the cursor, where x is the position
- of a character on a line and y is the line position on the DET
- screen. Values of x range from 0 (the left most character position
- on the line) to M-1, where M is the line length. Values of y range
- from 0 (the top most line on the screen) to N-1, where N is the page
- length. The cursor may be moved to any position on the DET screen
- without disturbing the characters already displayed.
-
- Valid field data for DET forms are the displayable ASCII character
- codes in the range 32 through 126 decimal and character 7 "BELL".
-
- Negotiating the DET option
-
- The DET option is negotiated when either party REQUESTS use of the
- DET option and the other party AGREES to its use. The DET option
- is requested by sending a DO DET and WILL DET and is accepted by
- sending a WILL DET and DO DET. (In the spirit of TELNET
- negotiation, the DET option must be negotiated for both directions
- on the connection.)
-
- Several TELNET options conflict with the DET option. Therefore,
- when the DET option is negotiated, the following TELNET options
- should be refused (or explicitly terminated): Echo, Suppress Go-
- Ahead, and Binary. (The Suppress Go-Ahead is the default state of
- DODIIS TELNET connections when they are first established.)
-
- DET facilities negotiation
-
- All implementations of the DET option are required to support the
- minimal DET implementation described in Section 3. In addition,
- DODIIS implementations are required to support subcommands and
- attributes that are consistent with DODIIS implementation
- requirements. Before any of these additional DET facilities may
- be used, an implementation must negotiate with its correspondent
- for permission to use them.
-
- The four facility subcommands (EDIT-FACILITIES, ERASE-FACILITIES,
- TRANSMIT-FACILITIES, and FORMAT-FACILITIES) are used to negotiate
- DET subcommands and attributes. This negotiation consists of an
- exchange of facility subcommands and may be viewed as the terminal
- (User Host) indicating the facilities it provides and the
- application program (Server Host) indicating the facilities it
- desires. The facilities that are jointly supported (and may be
-
-
-
- Yasuda & Thompson [Page 18]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- used) are arrived at by forming the logical intersection of the
- facility map that was sent with the facility map that was
- received. (For the intensity attribute, the lesser of the number
- of intensity levels sent and the number of intensity levels
- received will be used.) An implementation must record the
- currently agreed upon set of subcommands and attributes. Only
- subcommands and attributes reflected in that set may be used
- without further exchange of facility subcommands.
-
- Either party or both parties may initiate facilities negotiation
- without confusion as long as care is taken to avoid non-
- terminating negotiation loops. In particular, if you initiate
- negotiation by sending a facility subcommand, you must remember
- that you did initiate the negotiation. On receipt of a facility
- subcommand; if you initiated the negotiation, no response is
- required and the negotiation is complete; if you did not initiate
- the negotiation, you must respond by sending the appropriate
- facility subcommand to the requester. (Note that there is no
- requirement to negotiate facilities one class at a time and that
- the awareness of who initiated the negotiation must be maintained
- for each of the facility subcommands.)
-
- A TELNET implementation responding to a facility subcommand is not
- required to compute the logical intersection of the maps before
- responding. It should respond as quickly as possible with a
- facility map indicating all facilities of that class that it
- supports. There is no confusion since both parties compute the
- set of supported subcommands and attributes in the same fashion.
- Note that while both parties must agree to the use of the optional
- subcommands and attributes, either party may disable use at any
- time by merely sending the appropriate facility subcommand.
- Further, there are no restrictions on when facilities may be sent.
-
- CAUTION:
-
- All facilities maps contain reserved bits.
- These reserved bits must be zeroed when
- facility maps are sent to indicate non
- support and/or ignorance of the associated
- facility. The reserved bits may be defined
- in the future.
-
- General DET Interaction
-
- In the general interaction, the application implementation
- constructs a form, negotiates the desired options, indicates the
- required responses, and sends the TELNET GO-AHEAD. The GO-AHEAD
- signals that the form construction is complete and that the DET
-
-
-
- Yasuda & Thompson [Page 19]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- keyboard may be unlocked to permit a user response.
-
- The user normally responds by editing the unprotected areas of the
- form and signaling "form-complete", entering a function key,
- electing a field, or performing a combination of the preceding.
- In each case, the terminal implementation sends the DET
- subcommands indicating the user's response and returns the GO-
- AHEAD. The GO-AHEAD signals the end of the user response.
-
- The form, as edited by the user, remains on the virtual screen so
- the application may continue the interaction by altering the form.
-
- Form construction
-
- The application implementation constructs a form on an erased
- screen by defining each of the fields in the form. The DET fields
- are defined by their starting cursor position, size, attributes,
- and contents (data).
-
- A field's starting cursor position is the cursor position of the
- first character in the field. The cursor may be positioned
- explicitly by the MOVE-CURSOR subcommand or it may be positioned
- implicitly by field data or other DET subcommands (e.g.,
- ERASESCREEN and ERASE-UNPROTECTED).
-
- Field size, attributes, and contents may be defined using the
- FORMAT-DATA subcommand followed by field data. Alternatively, a
- field with default attributes may be defined using only the field
- data. In this case, field size is the data string length. The
- data string is terminated by the GO-AHEAD or any DET subcommand,
- except the REPEAT subcommand.
-
- There are no restrictions on attribute combinations that might be
- applied to a field even though some combinations may not be
- supported by terminal hardware. The terminal implementation
- should display the field with a "reasonable" combination of
- attributes. There is an error code that might be returned when an
- "unsupported combination of format attributes" is detected. It is
- not clear what the application should do about the error. In any
- event, this condition should not provoke session termination.
-
- Field contents (data) are restricted to printable ASCII characters
- and "BELL" (codes 32 through 126 and 7 decimal). It is the
- responsibility of the application implementation to properly
- translate carriage returns, line feeds, tabs, etc. to the
- appropriate DET subcommands.
-
- The maximum number of fields a screen might contain is the screen
-
-
-
- Yasuda & Thompson [Page 20]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- size in characters (the product of characters per line and lines
- per screen).
-
- Fields may not overlap. That is, a new field may not start or end
- within a previously defined field. However, overwriting of a
- field to change its attributes or contents is permitted.
-
- There are no restrictions on the order in which a form is built
- (e.g., left-to-right and top-to-bottom); the terminal
- implementation must be prepared to handle any order. Terminal
- implementations are encouraged to display data as it arrives to
- accommodate applications that persist in displaying status updates
- on the task(s) they are performing.
-
- If an application elects to modify a user edited form, it must
- properly position the cursor making no assumptions about where the
- user might have left the cursor. Further it must exactly
- overwrite the existing fields.
-
- When form construction is complete, the application indicates its
- response requirements by sending the appropriate transmit
- subcommand. It may send TRANSMIT-SCREEN, TRANSMIT-UNPROTECTED, or
- TRANSMIT-MODIFIED to request data and/or it may send READ-CURSOR
- to request cursor position. TRANSMIT-MODIFIED should be used
- whenever possible to minimize the volume of data transmitted
- between user and server hosts.
-
- Form response
-
- A form response is generated by the terminal implementation when
- the user signals "form-complete" or enters an enabled function
- key. The data returned are determined by the application through
- the transmit subcommands. If no transmit subcommand was sent the
- Modified and Protection attributes are used to determine an
- implied transmit subcommand. If the Modified attribute has been
- negotiated, assume TRANSMIT-MODIFIED. If the Protection attribute
- has been negotiated but the Modified has not, assume
- TRANSMITUNPROTECTED. If neither has been negotiated, assume
- TRANSMITSCREEN. (The intent is to achieve transmission efficiency
- by returning the smallest amount of data permitted by the in-force
- DET attributes.)
-
- CAUTION:
-
- With TRANSMIT-MODIFIED the terminal implementation
- must return all fields marked with the Modified
- attribute in addition to fields actually modified by
- the terminal user.
-
-
-
- Yasuda & Thompson [Page 21]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- Returned fields are identified and delimited using the
- DATATRANSMIT and/or FIELD-SEPARATOR subcommands. The DATA-
- TRANSMIT subcommand indicates the cursor address of the field that
- follows it and there are no restrictions on the order in which
- fields are returned. The FIELD-SEPARATOR subcommand conveys
- left-to-right and top-to-bottom field ordering. Data not preceded
- by one of these subcommands is assumed to be the first unprotected
- field in the form. A FIELD-SEPARATOR followed by FIELD-SEPARATOR
- indicates a field was unchanged and not returned.
-
- Unless otherwise restricted by Numeric-only or Alphabetic-only
- attributes, data entered into unprotected fields is restricted to
- the printable ASCII characters and "BELL" (codes 32 through 126
- and 7 decimal); no other characters are permitted.
-
- Function keys
-
- By general agreement, DODIIS terminal implementations will support
- 64 function keys (key values 0 through 63). Information on
- mapping function keys to application functions is the
- responsibility of the application and should be provided to the
- terminal user in the form of user documentation.
-
- The application enables and disables the function keys and
- indicates its form response requirements by sending the
- ENABLEFUNCTION-KEY subcommand. The terminal implementation
- validates function key selections based on information received in
- the ENABLE-FUNCTION-KEY bitmap. When an enabled function key is
- entered, the terminal returns a form response (if indicated in the
- bitmap), a FUNCTION-KEY subcommand, and the GO-AHEAD.
-
- Virtual function keys are part of the DET's virtual keyboard and
- are "locked" when the application has the GO-AHEAD. Since the
- terminal sends the GO-AHEAD when a function key is entered,
- entering a function key "re-locks" all function keys until the
- GO-AHEAD is returned.
-
- Field selection
-
- Any character within a field having the Selectable attribute is a
- candidate for selection. When selection is made, the terminal
- returns a SELECTED-FIELD subcommand identifying the character
- position selected. Multiple selections are permitted; however,
- the ordering of the selections need not be preserved. Field
- selection does not cause the GO-AHEAD to be sent. The GO-AHEAD
- must be sent as a result of another user action such as a function
- key entry or "form-complete" indication. Field selection is
- disabled when the application has the GO-AHEAD.
-
-
-
- Yasuda & Thompson [Page 22]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- Out-of-context data
-
- The out-of-context-data subcommands identify data that is clearly
- not in the context of the form interaction. It is a convenient
- not in the mechanism for sending ARE-YOU-THERE responses or host
- advisory messages to the user without disturbing the DET's virtual
- screen or altering the context of the form interaction.
-
- The application may send out-of-context data at anytime. The data
- must be preceded by the START-OUT-OF-CONTEXT-DATA subcommand and
- followed immediately by the END-OUT-OF-CONTEXT-DATA subcommand.
- The out-of-context data should contain carriage returns and line
- feeds to facilitate formatting. The sender should limit the
- amount of data sent, since most terminal implementations must
- buffer the data prior to displaying it. The terminal
- implementation should display the data to the user in a timely
- fashion. The data is for display only, no user response is
- required, and there is no mechanism for user response.
-
- Line Discipline
-
- The subject of DET and line discipline (controlling the connection
- using the GO-AHEAD) causes a bit of confusion. The following
- rules apply to GO-AHEAD and the DET option:
-
- When DET is negotiated, the application assumes the GO-AHEAD.
- GO-AHEAD is never passed implicitly; it is always passed
- explicitly.
-
- When the application has the GO-AHEAD, the terminal
- implementation may send TELNET commands (INTERRUPT-PROCESS,
- ABORT-OUTPUT, BREAK, and ARE-YOU-THERE). Nothing else is
- valid.
-
- When the terminal has the GO-AHEAD, the application may send
- out-of-context data or MOVE-CURSOR and FORMAT-DATA subcommands
- to update protected fields. Nothing else is valid. (The
- terminal implementation must display the out-of-context data
- and the field updates as soon as convenient.)
-
- The terminal implementation sends the GO-AHEAD, without further
- action on the part of the terminal user, when an enabled
- function key or a "form-complete" is entered.
-
- Since the terminal user must take explicit action to return the
- GO-AHEAD to the application, instances will occur when the user
- has the GO-AHEAD but the application needs it to display a new
- form. (This is most likely to occur when the user enters an
-
-
-
- Yasuda & Thompson [Page 23]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- INTERRUPT PROCESS.) When it does occur, the application should
- send an out-of-context-context message requesting the user to
- enter a "form-complete". If the user cooperates, the application
- can ignore any associated form response and regain control of the
- connection to display its form.
-
- The line discipline described here is more rigorous than that
- described for NVT in MIL-STD-1782. These rules apply only when
- operating in DET mode. At other times, the descriptions contained
- in MIL-STD-1782 apply. This distinction is necessary to ensure
- interoperability with non-DET implementations of TELNET.
-
- Standard TELNET control functions
-
- The TELNET control functions, ERASE CHARACTER and ERASE LINE, are
- NOT required and should not be sent in DET mode.
-
- Other implementation notes
-
- a. The DODIIS DET conceptual model does not support character
- editors or basic scrolling applications.
-
- b. Implementors are cautioned that DET subcommand parameters
- (e.g., facilities maps) may take on the value of the IAC
- character and must be replicated if they are to be properly
- interpreted.
-
- c. Principle of Robustness: "Be conservative in what you send; be
- liberal in what you accept from others."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Yasuda & Thompson [Page 24]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- APPENDIX 1 - DET OPCODES AND SUBCOMMAND SYNTAX.
-
- OPCODE SUBCOMMAND SYNTAX
- ------ -----------------
-
- 1 EDIT-FACILITIES <facility map>
- 2 ERASE-FACILITIES <facility map>
- 3 TRANSMIT-FACILITIES <facility map>
- 4 FORMAT-FACILITIES <facility map 1><facility map 2>
- 5 MOVE-CURSOR <x><y>
- 12 HOME-CURSOR
- 17 READ-CURSOR
- 18 CURSOR-POSITION <x><y>
- 20 TRANSMIT-SCREEN
- 21 TRANSMIT-UNPROTECTED
- 27 TRANSMIT-MODIFIED
- 28 DATA-TRANSMIT <x><y>
- 29 ERASE-SCREEN
- 35 ERASE-UNPROTECTED
- 36 FORMAT-DATA <format map><count>
- 37 REPEAT <count><character>
- 39 FIELD-SEPARATOR
- 40 FUNCTION-KEY <code>
- 41 ERROR <cmd><error code>
- 42 START-OUT-OF-CONTEXT-DATA
- 43 END-OUT-OF-CONTEXT-DATA
- 44 ENABLE-FUNCTION-KEYS <key-map>
- 45 SELECTED-FIELD <x><y>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Yasuda & Thompson [Page 25]
-
- RFC 1043 Data Entry Terminal - DODIIS February 1988
-
-
- APPENDIX 2 - DET ERROR CODES
-
- 1 Facility not previously negotiated.
-
- 2 Illegal subcommand code.
-
- 3 Cursor Address Out of Bounds.
-
- 4 Undefined FUNCTION-KEY value.
-
- 5 Can't negotiate acceptable line width.
-
- 6 Can't negotiate acceptable page length.
-
- 7 Illegal parameter in subcommand.
-
- 8 Syntax error in parsing subcommand.
-
- 9 Too many parameters in subcommand.
-
- 10 Too few parameters in subcommand.
-
- 11 Undefined parameter value.
-
- 12 Unsupported combination of Format Attributes.
-
- 13 Invalid field - overlap detected.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Yasuda & Thompson [Page 26]
-
-